package com.artazapedidos.view;

import com.artazapedidos.persistence.Mensaje;
import com.google.appengine.api.datastore.Key;
import com.artazapedidos.service.MensajeService;
import com.artazapedidos.view.utils.MessageProvider;
import java.util.*;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Required;
import org.springframework.binding.message.MessageBuilder;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.webflow.execution.RequestContext;

@Controller("mensajeController")
@Scope("request")
public class MensajeController {

    MensajeService mensajeService;
    Mensaje mimensaje;
    Collection<Mensaje> mensajes;

    public Collection<Mensaje> getMensajes() {
        mensajes=mensajeService.getAllMensajes();
        return mensajes;
    }

    public void setMensajes(Collection<Mensaje> mensajes) {
        this.mensajes = mensajes;
    }

    public Mensaje getMimensaje() {        
        return mimensaje;
    }

    public void setMimensaje(Mensaje mimensaje) {
        this.mimensaje = mimensaje;
    }

    @PostConstruct
    private void iniciar() {
        mimensaje = new Mensaje();
    }


    @Required
    @Autowired
    public void setMensajeService(MensajeService mensajeService) {
        this.mensajeService = mensajeService;
    }

    public void CrearMensaje(){
        FacesMessage msg = null;
        System.out.println(mimensaje.getNombre());
        System.out.println(mimensaje.getCorreo());
        System.out.println(mimensaje.getTelefono());
        System.out.println(mimensaje.getComentarios());

        if (mimensaje.getNombre().length()==0 || mimensaje.getCorreo().length()==0 || mimensaje.getTelefono().length()==0 || mimensaje.getComentarios().length()==0 ){
            msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, MessageProvider.getValue("error"), MessageProvider.getValue("faltan_datos"));
        }else{
        msg = new FacesMessage(FacesMessage.SEVERITY_INFO, MessageProvider.getValue("correcto"), MessageProvider.getValue("mensaje_enviado"));
        this.mensajeService.create(mimensaje);
        }
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

    public void BorrarMensaje(Mensaje mensaje, RequestContext context){

        FacesMessage msg = null;
        msg = new FacesMessage(FacesMessage.SEVERITY_INFO, MessageProvider.getValue("correcto"), MessageProvider.getValue("producto_borrado"));
        mensajeService.remove(mensaje);
        FacesContext.getCurrentInstance().addMessage(null, msg);
    }

}



